//type在ts中是对标interface，只不过有一些小区别（语法/用法）

// let dir: string = 'right'   //dir用于存储四个方向

// 使用type
type TDir = 'right' | 'top' | 'left' | 'bottom'

let dir: TDir = 'right'

dir = 'top'

// dir = 'qf001'   //不能将类型“"qf001"”分配给类型“TDir”

/**
 *  type 也可以完成 interface 的功能, 两者最大的区别就是 type 需要 =
 *
 *  一般在开发的时候, 我们如果是给对象添加类型校验我们会选择 interface
 *      type 一般更多的是给 字符串使用
 */

interface IObj1 {
    id: string;
    name: string;
}

type TObj2 = {
    // type 内部的属性可以用 换行/逗号/分号
    id: string;
    name: string;
};

const obj1: IObj1 = {
    id: "qf001",
    name: "张三",
};

const obj2: TObj2 = {
    id: "qf002",
    name: "李四",
};